100 PRINT"[147]DISKETTE VIEWER/CHANGER**JIM BUTTERFIELD" 110 PRINT" CAUTION - USE CARE - THIS PROGRAM" 115 PRINT "ADAPTED BY BRIAN SCHOTT TO FIX DISKETTE SECTORS" 118 REM 1041 NORTH HILLS DRIVE, DECATUR, GEORGIA, 30033 119 REM MAY 1983, FOR C64 120 PRINT" CAN WRECK YOUR DISKETTE IF USED" 130 PRINT" WITHOUT CARE & UNDERSTANDING!" 135 PRINT"DO YOU WANT INSTRUCTIONS" 136 GETY$:IFY$=""THEN136 137 IFY$<>"N"THEN1200 140 POKE53281,11 160 S1=16 170 S2=255:S3=37 180 DIM A(255) 190 B$=CHR$(17):D$="0" 210 OPEN 15,8,15,"I"+D$:GOSUB500 220 OPEN2,8,2,"#0":GOSUB500 230 PRINT" TRACK,SECTOR 0,0[157][157][157][157][157]"; 240 INPUTT,S 250 IFT<1ORT>35THENCLOSE2:CLOSE15:END 260 PRINT" WORKING ":PRINT#15,"U1:2,";D$;T;S:GOSUB500 275 PRINT"[147]"; 280 FORJ=0TO255 300 GET#2,A$:IFA$=""THENA$=CHR$(0) 310 A(J)=ASC(A$):NEXTJ 320 P=0:CL=1 330 PRINT"[147]TRACK";T;"SECTOR";S 340 FORJ=PTOP+S2STEPS1:PRINT"]"; 350 V=J:GOSUB800:K$="":PRINT"- ";:FORK=0TOS1-1:V=A(J+K):GOSUB800:K$="":CL=1-CL 355 PRINTCHR$(18);:IFCL=1THENPRINTCHR$(146); 356 REM IF YOU PREFER CHANGE 18 TO 144 AND CHANGE 146 TO 144 IN STATEMENT 355 360 NEXT K:PRINT"-":NEXTJ 365 PRINT""; 370 PRINT"CHANGE THE FIRST CHARACTER TO [ TO READ CHANGED SCREEN ONTO THE DISK" 380 PRINT"CHANGE THE FIRST CHARACTER TO \ TO ABORT THIS PROCESS" 390 OPEN1,3:CMD1 440 INPUTC$:PRINT;:Z=ASC(C$):C$=C$ 450 PRINT#1:CLOSE1 460 IFZ=91GOTO530 470 IFZ=93GOTO390 475 IFZ=147GOTO390 480 GOTO230 500 REM 510 INPUT#15,E,E$,E1,E2:IFE=0THENRETURN 520 PRINT"DISK ERROR:[146]"E;E$,E1;E2:END:RETURN 530 IFLEN(C$)"-"ORMID$(C$,S3+1,1)<>"-"GOTO230 550 C1=2:GOSUB700 560 C3=C2-1:FORK=1TOS1:C1=K*2+4:GOSUB700 570 PRINT#15,"B-P:"2;C3+K:GOSUB500:PRINT#2,CHR$(C2);:GOSUB500 580 NEXTK 590 PRINT#15,"U2:"2;D$;T;S:GOSUB500 600 GOTO390 700 C2=0:FORJ=0TO1:C%=ASC(MID$(C$,C1+J)):IFC%<58THENC%=C%-48 710 IFC%>64THENC%=C%-55 720 IFC%<0ORC%>15THENSTOP 730 C2=C2*16+C%:NEXTJ:RETURN 800 V=V/16:FORL=1TO2 810 V%=V:V=(V-V%)*16:IFV%>9THENV%=V%+7 820 K$=K$+CHR$(V1) 830 PRINTCHR$(V%+48);:NEXTL:RETURN 999 END 1000 CLOSE2:CLOSE15:CLOSE1:END 1200 PRINT"[147][212]HIS ROUTINE IS TO BE USED TO PATCH" 1210 PRINT"UP SMASHED SECTORS ON DISKETTES BY" 1220 PRINT"RECONSTRUCTING EACH BYTE (IN " 1230 PRINT"GROUPS OF 16 BYTES) MANUALLY. " 1240 PRINT"[217]OU ARE EXPECTED TO CHANGE THE HEX" 1250 PRINT"CHARACTERS IN THEIR PLACE[146] ON THE" 1260 PRINT"SCREEN. [201]N ADDITION, YOU MUST " 1270 PRINT"CHANGE THE INITIAL CHARACTER ON THE" 1280 PRINT"LINE OF HEX VALUES YOU TO CHANGE;" 1290 PRINT"FOR EXAMPLE, YOU MIGHT CHANGE [ TO]." 1300 PRINT"[212]O END THE PROCEDURE, CHANGE [ TO \." 1305 PRINT"[198]INALLY, TO QUIT, SELECT TRACK AND" 1306 PRINT"SECTOR: 0,0 ." 1310 PRINT"[201]F YOU GET INTO TROUBLE AND MUST " 1320 PRINT"PUSH RUN/STOP/RESTORE, YOU MAY BE" 1330 PRINT"ABLE TO CLOSE FILES BY TYPING" 1340 PRINT" GOSUB1000 IN IMMEDIATE MODE." 1350 PRINT"[201] RECOMMEND THAT YOU EXPERIMENT ON" 1360 PRINT"AN EXTRA DISK BEFORE USING THIS." 1370 PRINT"[199]OOD LUCK." 1375 PRINT"PRESS ANY KEY TO CONTINUE[146]" 1376 GETY$:IFY$=""THEN1376 1377 PRINT"[147]"; 1380 GOTO140 63990 OPEN1,8,15,"S0:DISKETTE MOD":CLOSE1 63995 SAVE"DISKETTE MOD",8:VERIFY"*",8